Summaries for While Programs with Recursion
نویسندگان
چکیده
Procedure summaries are an approximation of the effect of a procedure call. They have been used to prove partial correctness and safety properties. In this paper, we introduce a generalized notion of procedure summaries and present a framework to verify total correctness and liveness properties of a general class of while programs with recursion. We provide a fixpoint system for computing summaries, and a proof rule for total correctness of a program given a summary. With suitable abstraction methods and algorithms for efficient summary computation, the results presented here can be used for the automatic verification of termination and liveness properties for while programs with recursion.
منابع مشابه
Verifying Recursive Programs Using Intraprocedural Analyzers
Recursion can complicate program analysis significantly. Some program analyzers simply ignore recursion or even refuse to check recursive programs. In this paper, we propose an algorithm that uses a recursion-free program analyzer as a black box to check recursive programs. With extended program constructs for assumptions, assertions, and nondeterministic values, our algorithm computes function...
متن کاملSummary-Based Inter-Procedural Analysis via Modular Trace Refinement
We propose a generalisation of trace refinement for the verification of inter-procedural programs. Our method is a top-down modular, summary-based approach, and analyses inter-procedural programs by building function summaries on-demand and improving the summaries each time a function is analysed. Our method is sound, and complete relative to the existence of a modular Hoare proof for a non-rec...
متن کاملProperty Directed Reachability for Proving Absence of Concurrent Modification Errors
We define and implement an interprocedural analysis for automatically checking safety of recursive programs with an unbounded state space. The main idea is to infer modular universally quantified inductive invariants in the form of procedure summaries that are sufficient to prove the safety property. We assume that the effect of the atomic commands of the program can be modeled via effectively ...
متن کاملLiveness Verification and Synthesis: New Algorithms for Recursive Programs
We consider the problems of liveness verification and liveness synthesis for recursive programs. The liveness verification problem (LVP) is to decide whether a given ω-context-free language is contained in a given ω-regular language. The liveness synthesis problem (LSP) is to compute a strategy so that a given ω-context-free game, when played along the strategy, is guaranteed to derive a word i...
متن کاملIbm Research Report Courteous Logic Programs: Prioritized Connict Handling for Rules
We de ne courteous logic programs, an expressive superclass of general logic programs, for the acyclic case. Courteous LP's feature not only classical negation as in extended LP's (Gelfond & Lifschitz), but also prioritized conict handling. We show courteous LP's always have a consistent and unique answer set, which can be computed in O(m2) time, where m is the size of the ground-instantiated p...
متن کامل